﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using S3.Common;

namespace S3
{
    public partial class LisenceForm : Form
    {
        int count = 0;
        public LisenceForm()
        {            
            InitializeComponent();
            //Check lisence
            //if (IsRegisterd())
            //{
            //    Login frmLogin = new Login();
            //    frmLogin.Show();
            //}
            //else
            //{
            //    this.Show();
            //}
            
        }

        

        //private void CheckInfo()
        //{
        //    lblWarning.Text = "";

        //    ModifyRegistry registry = new ModifyRegistry();
            
        //    //Check is trial or full
        //    var lisenceExpire = registry.Read(Constants.RegistryLisenceExpire);
        //    if (string.IsNullOrEmpty(lisenceExpire))//Expired
        //    {
        //        lblWarning.Text = "Phiên bản hiện tại chưa đăng kí bản quyền !";
        //    }
        //    else
        //    {
        //        DateTime expireDate = new DateTime();
        //        if (DateTime.TryParse(lisenceExpire, out expireDate))
        //        {
        //            if (expireDate < DateTime.Now)
        //            {
        //                lblWarning.Text = "Phần mềm đã hết hạn sử dụng !";
        //            }
        //            else
        //            {
        //                this.Close();
        //                Login frmLogin = new Login();
        //                frmLogin.Show();
        //            }
        //        }
        //        else
        //        {
        //            lblWarning.Text = "Phiên bản hiện tại chưa đăng kí bản quyền !";
        //        }
        //    }
        //}

        private void btnReg_Click(object sender, EventArgs e)
        {
            string user = txtUserName.Text.Trim();
            if (string.IsNullOrEmpty(user))
            {
                lblMsg.Text = "Hãy nhập tên người dùng.";
                txtUserName.Focus();
                return;
            }

            string code = txtCode.Text.Trim();
            if (string.IsNullOrEmpty(code))
            {
                lblMsg.Text = "Hãy nhập tên người dùng.";
                txtCode.Focus();
                return;
            }

            if (Utils.Lisence(user) == code)
            {
                //Check current key
                ModifyRegistry registry = new ModifyRegistry();

                if (registry.Read(Constants.RegistryLisenceKey) == code)
                {
                    XtraMessageBox.Show("Mã này đã được sử dụng, vui lòng nhập mã bản quyền khác.");
                }
                else
                {
                    registry.Write(Constants.RegistryLisenceName, user);
                    registry.Write(Constants.RegistryLisenceKey, code);

                    if (user.ToLower().Contains("demo") || user.ToLower().Contains("trial"))
                    {
                        registry.Write(Constants.RegistryLisenceExpire, DateTime.Now.AddMonths(1));
                    }
                    else
                    {
                        registry.Write(Constants.RegistryLisenceExpire, DateTime.Now.AddYears(99));
                    }

                    XtraMessageBox.Show("Cảm ơn ! Bạn đã đăng kí bản quyền thành công !");
                    this.DialogResult = DialogResult.OK;
                    
                    
                    //Open Login form.
                    LoginForm frmLogin = new LoginForm(this);
                    frmLogin.Show();
                                        
                }
            }
            else
            {
                count = count + 1;
                lblMsg.Text = "Mã đăng kí không đúng !";
                if (count > 3)
                {
                    XtraMessageBox.Show("Bạn đã nhập sai mã đăng kí quá 3 lần !");
                    this.DialogResult = DialogResult.Cancel;
                    this.Close();                    
                }
            }            
        }        

        private void linkSupport_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            About about = new About();
            about.ShowDialog();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();            
        }

        private void txtUserName_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                btnReg_Click(sender, e);
            }
        }

        private void txtCode_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                btnReg_Click(sender, e);
            }

        }
    }
}
